home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / aeclipd.arc / AEDIAL.C < prev    next >
C/C++ Source or Header  |  1989-10-14  |  3KB  |  138 lines

  1. #include "dos.h"
  2. #include "extend.h"
  3. #include "fcntl.h"
  4. #include "sys\types.h"
  5. #include "sys\stat.h"
  6. #include "stdio.h"
  7. #include "bios.h"
  8. #define CONF 0x43
  9. #define DATAR 0x100
  10. #define TRUE 1
  11. #define DELAY 1000
  12. #define RS232 0x14
  13.  
  14. char DIALSTRING[]="ATDT";
  15. char ENDDIAL[]="\r";
  16. char GETMODEMATT[]="AT";
  17. unsigned COM=0;
  18.  
  19. CLIPPER ModemNum()
  20. {
  21.     COM=_parni(1);
  22. }
  23.  
  24. CLIPPER ModemDial()
  25. {
  26.     union REGS inregs,outregs;
  27.     char ch, *sentstrg;
  28.     int i,k;
  29.     char ldata;
  30.     sentstrg=_parc(1);
  31.     inregs.h.ah=0;
  32.     inregs.x.dx=COM;
  33.     inregs.h.al=CONF;
  34.     int86(0x14,&inregs,&outregs);
  35.     for (i=0;DIALSTRING[i] !='\0';i++)
  36.     {
  37.     ldata=DIALSTRING[i];
  38.       inregs.h.ah=1;
  39.       inregs.x.dx=COM;
  40.       inregs.h.al=ldata;
  41.       int86(0x14,&inregs,&outregs);
  42.       for(k=0;k<DELAY;k++);
  43.     }
  44.     for (i=0;sentstrg[i] !='\0';i++)
  45.     {
  46.     ldata=sentstrg[i];
  47.       inregs.h.ah=1;
  48.       inregs.x.dx=COM;
  49.       inregs.h.al=ldata;
  50.       int86(0x14,&inregs,&outregs);
  51.       for(k=0;k<DELAY;k++);
  52.     }
  53.     for (i=0;ENDDIAL[i] !='\0';i++)
  54.     {
  55.     ldata=ENDDIAL[i];
  56.       inregs.h.ah=1;
  57.       inregs.x.dx=COM;
  58.       inregs.h.al=ldata;
  59.       int86(0x14,&inregs,&outregs);
  60.       for(k=0;k<DELAY;k++);
  61.     }
  62.  
  63.     }
  64.  
  65. CLIPPER ModemStr()
  66. {
  67.     union REGS inregs,outregs;
  68.     char ch, *sentstrg;
  69.     int i,k;
  70.     char ldata;
  71.     sentstrg=_parc(1);
  72.     inregs.h.ah=0;
  73.     inregs.x.dx=COM;
  74.     inregs.h.al=CONF;
  75.     int86(0x14,&inregs,&outregs);
  76.     for (i=0;GETMODEMATT[i] !='\0';i++)
  77.     {
  78.     ldata=GETMODEMATT[i];
  79.       inregs.h.ah=1;
  80.       inregs.x.dx=COM;
  81.       inregs.h.al=ldata;
  82.       int86(0x14,&inregs,&outregs);
  83.       for(k=0;k<DELAY;k++);
  84.     }
  85.     for (i=0;sentstrg[i] !='\0';i++)
  86.     {
  87.     ldata=sentstrg[i];
  88.       inregs.h.ah=1;
  89.       inregs.x.dx=COM;
  90.       inregs.h.al=ldata;
  91.       int86(0x14,&inregs,&outregs);
  92.       for(k=0;k<DELAY;k++);
  93.     }
  94.     for (i=0;ENDDIAL[i] !='\0';i++)
  95.     {
  96.     ldata=ENDDIAL[i];
  97.       inregs.h.ah=1;
  98.       inregs.x.dx=COM;
  99.       inregs.h.al=ldata;
  100.       int86(0x14,&inregs,&outregs);
  101.       for(k=0;k<DELAY;k++);
  102.     }
  103.  
  104.     }
  105.  
  106. CLIPPER ModemStat()
  107. {
  108.     int ch_hit;
  109.     char *mstatus="NO STATUS";
  110.       ch_hit=0xff & _bios_serialcom(_COM_RECEIVE, COM, 0);
  111.       switch(ch_hit) {
  112.        case 48: mstatus="OK"; break;
  113.        case 49: mstatus="CONNECT";break;
  114.        case 50: mstatus="RING";break;
  115.        case 51: mstatus="NO CARRIER";break;
  116.        case 52: mstatus="ERROR"; break;
  117.        case 53: mstatus="CONNECT 1200";break;
  118.        case 54: mstatus="NO DIALTONE";break;
  119.        case 55: mstatus="BUSY";break;
  120.        case 56: mstatus="NO ANSWER";break;
  121.  
  122. }
  123.     _retc(mstatus);
  124. }
  125. CLIPPER ModemInit()
  126. {
  127.       unsigned data;
  128.       int i;
  129.       switch(_parni(1)) {
  130.       case 110: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_110);break;
  131.       case 300: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_300);break;
  132.       case 1200: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_1200);break;
  133.       case 2400: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_2400);break;
  134.       case 9600: data=(_COM_CHR8 | _COM_STOP1 | _COM_NOPARITY | _COM_9600);break;
  135.        }
  136.       _bios_serialcom(_COM_INIT, COM, data);
  137. }
  138.